Rendering data using rendering instructions based upon concept identifiers for the data

ABSTRACT

Rendering of data on user devices using rendering instructions and interaction rules. The data includes concepts representing data elements and having associated concept identifiers. Using the concept identifiers, a system retrieves rendering instructions for the corresponding data element in order to present the data element on a display of a user device. For interactive elements that can be selected by a user, the system retrieves interaction rules in order to determine how to render data for the interactive element based upon the user&#39;s selection of it.

REFERENCE TO RELATED APPLICATIONS

[0001] The present application is related to the following applications, all of which are incorporated herein by reference as if fully set forth: Brian C. Roundtree U.S. provisional patent application Ser. No. 60/182,330, entitled “Web-Based Personal Assistance Communication Method,” and filed Feb. 14, 2000; United States patent application of Brian C. Roundtree, entitled “Web-Based Personal Assistance Communication System,” and filed Jul. 17, 2000; United States patent application of Brian C. Roundtree, entitled “Web-Based Personal Assistance Communication Method,” and filed Jul. 17, 2000; United States patent application of Brian C. Roundtree, entitled “Web-Based Personal Assistance User Interface System,” and filed Jul. 17, 2000; United States patent application of Brian C. Roundtree, entitled “Voice-to-Concept Conversion System,” and filed on Sep. 8, 2000; United States patent application of Craig G. Eisler and Brian C. Roundtree, entitled “On-Line Service Provider Sign-Up System,” and filed on Sep. 8, 2000; United States patent application of Keldon V. Rush and Brian C. Roundtree, entitled “System for Converting Textual Concepts to Interactive Audio and Audio/Visual Presentations,” and filed on Sep. 8, 2000; United States patent application of Brian C. Roundtree, entitled “System for Obtaining Service-Related Information for Local Interactive Wireless Devices,” and filed on Sep. 8, 2000; United States patent application of Cristiano L S Pierry and Brian C. Roundtree, entitled “System for Secure Electronic Transactions Using Unique Identifiers for Order-Related Information,” and filed on Sep. 8, 2000; United States patent application of Brian C. Roundtree, entitled “Airline Flight Departure and Arrival Prediction Based Upon Historical and Real-Time Data,” and filed on same date herewith; United States patent application of Craig G. Eisler and Brian C. Roundtree, entitled “Hypertext Concept Notation for Dynamically Constructing a Sentence to Respond to a User Request,” and filed on same date herewith; United States patent application of Craig G. Eisler and Brian C. Roundtree, entitled “Assembling Personal Information of a Target Person Based Upon Third-Party Information and a Request Purpose,” and filed on same date herewith; United States patent application of Brian C. Roundtree, entitled “Automated Reservation and Appointment System Using Interactive Voice Recognition,” and filed on same date herewith; and United States patent application of Cristiano L S Pierry and Brian C. Roundtree, entitled “Automated Alert State Change of User Devices for Time-Based and Location-Based Events,” and filed on same date herewith.

FIELD OF THE INVENTION

[0002] The present invention relates to an apparatus and method for rendering data using rendering instructions for data elements and interaction instructions for interactive elements.

BACKGROUND OF THE INVENTION

[0003] Wireless devices, such as cell phones and personal digital assistants (PDAs), are becoming more commonly used and have the potential for communication over the Internet in addition to traditional telephone networks. The Internet communication with these devices permits users to obtain services and other related information using wireless communication with the devices. For example, a user can download content from the world wide web on the Internet using a cell phone and have the information displayed on the display panel of the cell phone. Therefore, in addition to using the cell phone for voice communication, the user can obtain content over the Internet concerning, for example, services available from service providers. The user can also execute transactions over the Internet using the cell phone or other wireless device. For example, the user can make electronic purchases for good or services, analogous to how users can make transactions over the Internet using a personal computer having a connection to the Internet.

[0004] Many wireless devices, however, provide for limited ways to enter information for communications over the Internet. Cell phones, for example, typically have only a key pad in addition to a microphone, making entry of textual information slow and inconvenient. Other devices, such as PDAs, may have even more limited ways to enter textual information. Therefore, these devices do not typically provide the same ease of interacting over the Internet as provided by a personal computer having a keyboard and cursor-control device for easy and convenient “point and click” selection of content displayed in web pages. These devices may also be limited in how information can be displayed. Wireline devices, such as conventional phones, provide for even more limited interaction over the Internet.

[0005] Also, when using these user devices to execute the transactions, the information available through the transactions is often limited. A user request for content often results in generic content potentially applicable to many situations other than the particular situation of the user. For example, a user may want information about purchasing gifts for others or information about services available such as travel-related information. In response to a request for such information, the user may be provided with information about gifts for generic categories and other information for general travel-related services. Without targeting the information to the user's situation, the information may not have much value to the user.

[0006] Accordingly, a need exists for increased options and versatility for user's having wireless devices or wireline devices to interact and make transactions over the Internet, for increased versatility to request service or make transactions with service providers, and for obtaining more information targeted to a user's particular situation or request.

SUMMARY OF THE INVENTION

[0007] A method and apparatus consistent with the present invention render data on a user device based upon concepts. The user device receives incoming data including concept identifiers for use in identifying concepts relating to the data. Rendering instructions are received based upon the concept identifiers, and the data is rendered on the user device based upon the rendering instructions.

BRIEF DESCRIPTION OF THE DRAWINGS

[0008] The accompanying drawings are incorporated in and constitute a part of this specification and, together with the description, explain the advantages and principles of the invention. In the drawings,

[0009]FIG. 1 is a diagram of a system for processing requests for service;

[0010]FIG. 2 is a diagram of a network for communicating with wireless and wireline devices and service providers to process requests for service;

[0011]FIG. 3 is a diagram of exemplary components of a server for processing requests for service;

[0012]FIG. 4 is a diagram of exemplary components of a wireless device;

[0013]FIG. 5 is a flow chart of a method for rendering data on a user device;

[0014]FIG. 6 is a flow chart of a method for re-rendering interactive elements based upon a user's selection of them;

[0015]FIG. 7 is a diagram illustrating rendering of a data elements and interactive elements on a user device;

[0016]FIG. 8 is a diagram illustrating an example of rendering data including interactive elements; and

[0017]FIG. 9 is a diagram illustrating another example of rendering data including interactive elements.

DETAILED DESCRIPTION Introduction

[0018] Embodiments consistent with the present invention provide various features for a web-based electronic personal assistant, as described in the web-based personal assistance applications identified above. The electronic personal assistant is implemented with a system server that the receives requests from users through wireless or wireline devices and processes the requests in order to provide the user with requested service or information. These features permit the user to interact with the system server in a variety of ways such as through a display on the device, a keyboard or keypad, or through voice interaction. The system server can present information to the user in a variety of ways as well, such as through audio communication or through information presented on a display with, for example, textual information, screens, or web pages presented with HyperText Markup Language (HTML).

[0019] The requests, as explained in the web-based personal assistance applications identified above, can include any request for service or information. For example, a user may request a meeting, and in response the system server queries the user to obtain information required to arrange the meeting and then automatically makes the arrangements. As another example, a user may request information concerning services in a particular geographic location or based upon other parameters, and the system server can query the user to determine the type of information requested, such as particular types of retail establishments, and provide the information to the user. As another example, a user may request to purchase goods or services, or make reservations for services, and in response the system server queries the user to determine the type of goods or services desired as well as other information such as a desired price. Based upon that information, the system server automatically makes the purchase for the user. For the reservations example, the system server can query the user to determine information required to make the reservations for the user. For any request, the system server can access user preferences to obtain information required or useful to process the request, such as the user's credit card information and shipping address.

[0020] In addition, the system server can automatically notify the user of particular information. The system server typically maintains a database of preferences for the users in order to help process the requests. It also maintains a concept database and uses the concepts in order to retrieve and construct queries, such as text fragments, for the user. The use of only text fragments, for example, saves transmission time in comparison to transmission of graphical information over a network; alternatively, graphics can be used in addition to the text fragments.

[0021] Based upon the type of request, and potentially user preferences, the system server selects the appropriate queries from the concept database to obtain information to process the request. Upon completion of the processing, the system server can present to the user a sentence constructed from the related concepts in order to confirm the request. It can also use the sentence to document the request, retrieve the appropriate resources for it, and otherwise fulfill the request. This process, and the use of these concepts and the structure for a concept database, are further described in the web-based personal assistance applications identified above.

[0022] The system server can also cross-reference the concept database with a service provider database. In order to fulfill requests, the system server can access a database identifying available service providers for the request. At the end of each string of concepts in the concept database, that database can specify a link or pointer to the relevant service providers in the service provider database. For example, if the request is for a meeting, once the system server has all the relevant information as constructed from the concepts, the concept for the location of the meeting can include a pointer or link to the establishments proximate the location and available to provide food for the meeting. Therefore, information for relevant service providers can be associated with the appropriate concepts in the concept database.

Request Processing

[0023]FIG. 1 is a diagram of a system for fulfilling a request for service. The system includes a system server 10 for processing a request transmitted from a requester 12 through a network 14 such as the Internet or other wireline or wireless network. System server 10 includes several software modules for processing the request from requestor 12. A communicator module 16 manages an interface for the communications with requestor 12 over network 14. Communicator module 16 receives the request and provides necessary formatting and other processing for transmitting it to a planner module 22.

[0024] Planner module 22 interacts with a service provider module 24 in order to obtain the resources for fulfilling the request. In particular, service provider module 24 interacts over a network 30, such as the Internet or a phone network, with one or more service providers 32 in order to obtain services to fulfill the request. Service provider module 24 provides for communication and data conversion for the interaction, while planner module 22 manages processing of the request and interacts with various databases for processing the request. A private credit card service module 28 can provide for secure order processing of the request to help safeguard users' personal information such as credit card numbers.

[0025] Once the planner module 22 has obtained the resources for the request, it communicates information to fulfill the request to an executor module 18. Executor module 18 includes a pending plan database 20 for storing and managing resources and other information to fulfill the request. Executor module 18 thus communicates back over network 14 with requester 12 to provide confirmation of the request and also to execute the request.

[0026] A learning module 26 can provide for fine-tuning plan data within a database 34 in order to more efficiently process requests, particularly from the same requestor. Other databases include a database 36 storing financial data accessed by executor module 18, and a database 38 storing personal data accessed by executor module 18 and planner module 22. The personal data can include an account for each user having a profile and preferences for the users, and the information can be indexed by a particular user identifier such as a phone number or code.

[0027] Table 1 illustrates a user account. As shown, the user accounts can include users' preferences for a wide variety of information such as for travel, dining, and other types of service providers. The user preferences can be continually updated and refined over time as the system server gathers more information concerning the user, and the system server can optionally use learning models for the refinements and use the preferences to make “smart choices” in processing users' requests. The information can be stored in a variety of ways such as in a relational database or with name-value pairs in Extensible Markup Language (XML). TABLE 1 user 1 identifier data contact name, address profile user 1 characteristics hotel information user 1 hotel preferences airline information user 1 airline preferences rental car information user 1 rental car preferences restaurant information user 1 restaurant preferences service provider preferences user 1 service provider preferences other category user 1 preferences for the category

[0028] Processing to fulfill the request is further explained in the web-based personal assistance applications identified above.

Network

[0029]FIG. 2 is a diagram of an exemplary network 50 illustrating interaction for receiving and processing requests from users such as requestor 12. It illustrates how the system can receive requests through wireless and wireline transmission over conventional phone and cellular networks as well as the Internet or other computer networks. A requester typically makes a request from a wireless or wireline device. The wireless devices include any device capable of wireless electronic communication and examples include the following: cellular phones; PDAs with wireless network access; wireless Internet appliances; personal computers (including desktop, laptop, notebook, and others) with wireless network access; and personal computers with microphones, speakers, and circuitry for permitting wireless phone calls. The wireline devices include any device capable of electronic wireline communication and examples include the following: conventional phones; PDAs with wireline network access; Internet appliances; personal computers (including desktop, laptop, notebook, and others) with wireline network access; and personal computers with microphones, speakers, and circuitry for permitting wireline phone calls.

[0030] A wireless device 52, for example, can interact through wireless transmission with a base station 56 for communication over a personal communication system (PCS) 58. A request may also be made from a wireline device 54 communicating over a public switched telephone network (PSN) 60. Systems for wireless and wireline communication, includes a PCS and PSN, are known in the art.

[0031] Communications through networks 58 and 60 are transmitted through a gateway 62 and potentially a buffer 64 to a speech processor 66 for performing processing of audio or particular types of communications, such as for voice-to-text conversion. Also, the communication may occur directly from gateway 62 to an interface server 68. Interface server 68 controls gateway 62, and it provides an interface between a system server 76 and gateway 62, speech processor 66, and the world wide web 70.

[0032] System server 76 corresponds with system server 10 in FIG. 1 to process user requests. Interface server 68 provides the data conversion and processing for transferring data to and from system server 76. As shown by the dashed line, speech processor 66 and interface server 68 can be implemented with the same physical machine or with different machines. Also, system server 76 can be implemented with one or more physical machines and can also be programmed to implement the functions of speech processor 66 and interface server 68.

[0033] In addition to receiving requests over networks 58 and 60, interface server 68 can receive a request over the world wide web 70. In particular, a wireless device 74 can interact through wireless communication with a PCS 72, which communicates over the world wide web 70 through a communication protocol such as, for example, the wireless application protocol (WAP). The WAP for communications over the Internet is known in the art.

[0034] System server 76 can communicate over the world wide web 78 with various service provides 80 to fulfill requests. In addition, system server 76 can communicate with credit card processing or other financial networks 86 in order to provide financial processing for fulfilling requests. Networks 86 can include known networks, including banking networks, for processing credit card transactions. As shown, service providers 80 and financial networks 86 can also send and receive communications through a PCS 82 and PSN 84.

[0035] System server 76 can communicate directly over the world wide web 78 to a gateway 88 and base station 90 in order to provide communication directly with a wireless device 92. Also as shown, communications can occur from system server 76 back through interface server 68 and speech processor 66 to the end user wireless devices 52 and 74 and wireline device 54; system server 76 can also communicate directly with gateway 62, as shown. Those communications can provide, for example, confirmation of a request or information responsive to a request.

[0036] Network 50 illustrates fundamental hardware components for communications over the various types of networks shown. As known in the art, network 50 can include additional components and can also include components for providing services known in the art with respect to phone calls. For example, it can include a caller ID service to provide system server 76 with the phone number of the user's wireless or wireline device originating a communication. Also, network 50 can include other means for communication of data such as through satellite transmission. For transmission over the Internet, network 50 can use Transmission Control Protocol/Internet Protocol (TCP/IP) or other protocols.

Server Components

[0037]FIG. 3 depicts a server 100 illustrating exemplary hardware components of system server 10 and other machines used by the system, such as speech processor 66 and interface server 68. Server 100 includes a connection with a network 116 such as the Internet or other type of computer or phone networks, which may correspond with the networks shown in FIGS. 1 and 2. Server 100 typically includes a memory 102, a secondary storage device 110, a processor 112, an input device 114, a display device 108, and an output device 106.

[0038] Memory 102 may include random access memory (RAM) or similar types of memory, and it may store one or more applications 104 for execution by processor 112. Applications 104 may correspond with software modules to perform processing for the functions described below. Secondary storage device 110 may include a hard disk drive, floppy disk drive, CD-ROM drive, or other types of non-volatile data storage, and it may correspond with the various databases shown in FIG. 1. Processor 112 may execute applications or programs stored in memory 102 or secondary storage 110, or received from the Internet or other network 116. Input device 114 may include any device for entering information into server 100, such as a keyboard, key pad, cursor-control device, touch-screen (possibly with a stylus), or microphone. Display device 108 may include any type of device for presenting visual information such as, for example, a computer monitor, flat-screen display, or display panel. Output device 106 may include any type of device for presenting a hard copy of information, such as a printer, and other types of output devices include speakers or any device for providing information in audio form. Server 100 can possibly include multiple input devices, output devices, and display devices.

[0039] Although server 100 is depicted with various components, one skilled in the art will appreciate that this server can contain additional or different components. In addition, although aspects of an implementation consistent with the present invention are described as being stored in memory, one skilled in the art will appreciate that these aspects can also be stored on or read from other types of computer program products or computer-readable media, such as secondary storage devices, including hard disks, floppy disks, or CD-ROM; a carrier wave from the Internet or other network; or other forms of RAM or ROM. The computer-readable media may include instructions for controlling server 100 to perform a particular method.

Wireless Device Components

[0040]FIG. 4 illustrates exemplary hardware components of a wireless device 120, which may correspond with the exemplary wireless devices identified above. Wireless device 120 typically includes a memory 122, a secondary storage device 130, a processor 132, an input device 134, a display device 128, an output device 126, a transmitter/receiver 136, and a short range transmitter/receiver 138.

[0041] Memory 122 may include RAM or similar types of memory, and it may store one or more applications 124 for execution by processor 132. Applications 124 may correspond with software modules to perform processing for the functions described below, and they may also include web browser programs for retrieving and displaying content from the Internet. Secondary storage device 130 may include a hard disk drive, floppy disk drive, CD-ROM drive, or other types of non-volatile data storage such as a ROM. Processor 132 may execute applications or programs stored in memory 122 or secondary storage 130. Input device 134 may include any device for entering information into wireless device 120, such as a keyboard, key pad, cursor-control device, touch-screen (possibly with a stylus), or microphone. Wireless device 120 can include multiple input devices; for example, it can include both a microphone and key pad for a cell phone. Display device 128 may include any type of device for presenting visual information such as, for example, a computer monitor, flat-screen display, or display panel. Output device 126 typically includes a speaker for providing information in audio form. It can also include a device for providing a hard copy of information such as a printer, or provide a port for a connection to a printer. Wireless device 120 can possibly include multiple input devices, output devices, and display devices.

[0042] Transmitter/receiver 136 provides for wireless communication with phone networks or computer networks such as is shown in FIGS. 1 and 2. Transmitter/receiver 136 can be implemented with known RF transmitters and receivers for providing cellular transmission between wireless device 120 and base stations such as base stations 56 and 90, or it can be implemented with a wireless transmitter/receiver for other types of communication such as a satellite transmission.

[0043] Short range transmitter/receiver 138 provides for wireless short range communication with other wireless devices, and it can be implemented with transmitters and receivers that operate according to the IEEE standard 802.11 for local wireless networks or according to the standard referred to as the Bluetooth™ technology for direct wireless communication between local interactive wireless devices; that technology is explained in, for example, the Specification of the Bluetooth System, Core, v1.0 B, Dec. 1, 1999 and the Specification of the Bluetooth System, Profiles, v1.0 B, Dec. 1, 1999, both of which are incorporated herein by reference.

[0044] In addition, even if a wireless device does not contain short range transmitter/receiver 138, technology exists to obtain an approximate geographic location of certain wireless devices. In particular, using multiple base stations the signal from a cellular phone, for example, can be triangulated in order to obtain an approximate geographic location of the cellular phone, including an indication of its vertical (altitude) location.

[0045] Although wireless device 120 is depicted with various components, one skilled in the art will appreciate that this wireless device can contain additional or different components. In addition, although aspects of an implementation consistent with the present invention are described as being stored in memory, one skilled in the art will appreciate that these aspects can also be stored on or read from other types of computer program products or computer-readable media, such as secondary storage devices, including hard disks, floppy disks, or CD-ROM; a carrier wave from the Internet or other network; or other forms of RAM or ROM. The computer-readable media may include instructions for controlling wireless device 120 to perform a particular method.

[0046] Exemplary hardware components for wireline devices, such as the examples provided above, can include the same components as wireless device 120 except without the transmitter/receiver 136 and the short range transmitter/receiver 138.

Data Rendering

[0047] Data rendering provides the information for how to present data corresponding to concepts on a user device. The use of concepts is discussed in the related applications identified above. The concepts are associated with concept identifiers, which are used to index rendering instructions. A user device receives a data string and repeatedly parses it to obtain the concept identifiers and then retrieve the corresponding rendering instruction, which it uses to render the data on a display for the user device. It can also render and process interactive elements using the rendering instructions and interaction rules specifying how to process a user's selection of the interactive elements. The rendering instructions and interaction rules can be accessed remotely at the system server, or stored locally to perform the processing at the user device. Although concept identifiers are used to retrieve rendering instructions, other types of links or indexing of data with rendering instructions can be used.

[0048]FIG. 5 is a flow chart of a method 150 for rendering data on a user device. Method 150 can be implemented, for example, with software or firmware modules on a server such as system server 10 and the user device such as device 120, as necessary to perform the method. In method 150, a user interface (UI) program receives incoming data (step 152). The data can be transmitted, for example, as a data string formatted in XML. The UI program can be resident on the user device and execute steps of method 150 occurring at the user device.

[0049] Table 2 provides an example of a portion of a data string for airline flight information. As illustrated in Table 2, different concept identifiers can be used for different items, in this example flights and car rental companies. Also, the concept data is provided between identification of the concept, and certain types of data such as the alternate flight times are separate by the “;” symbol as a delimiter. XML nomenclature is known in the art, and other types of nomenclature can be used for transmitting data for rendering. In this exemplary nomenclature, tags are used to represent the concept identifiers. TABLE 2 <XML!> <concept ID>243<\concept ID> <Flight>1242<\Flight> <Airline>United Airlines<\Airline> <Selected>True<\Selected> . . . <Alternate Departure Flight Times>8:15; 9:15; 10:15 </Alternate Departure Flight Times> . . . <concept ID>266<concept ID> <Rental Car Company>Hertz<\Rental Car Company> . . . <\XML!>

[0050] The UI program determines an operating system and user interface settings of the associated user device (step 154). User interface settings can specify, for example, user-entered options for displaying data such colors, a font size, or other formatting. The UI program then begins parsing the data string to obtain a concept identifier (step 156). It can identify a concept identifier according to the nomenclature for the data string. Upon obtaining a concept identifier, the UI program uses the concept identifier and optionally the settings to look up rendering instructions for the data (step 158), and the UI program retrieves the rendering instructions (step 160).

[0051] Table 3 provides an example of a data structure for storing rendering instructions. As illustrated in Table 3, the rendering instructions and identification of interactive elements can be indexed by concept identifiers, along with a type of user device and operation system. The rendering instructions provide the information for how to present the concept data corresponding to the concept identifier, and examples are provided below. The rendering instructions can be stored at the system server and downloaded; alternatively, they can be stored on the user device to allow the UI program to perform the processing locally.

[0052] The rendering instructions can be retrieved and based upon a number of factors such as, for example, the following: conventional or standard appearances for particular types of data; a type, size, and the capabilities of a display of the user device; a type of user device; an operating system for the user device; user preferences; user input; and a language identifier. Each of these factors can be used, for example, in conjunction with the concept identifiers to index the rendering instructions as illustrated in Table 3. Also, the rendering instructions can be stored in multiple locations. For example, the user device, for step 160, can retrieve default rendering instructions from a remote server for data corresponding to a particular concept identifier and then locally retrieve additional instructions to modify or redefine the default rendering instructions based upon user input, preferences, or other factors. The user may wish to define, for example, particular colors for the data or other formatting, and the user device can redefine the default rendering instructions in order to change the default color or other formatting of the data to the user-defined color or other formatting after retrieving the default rendering instructions. Therefore, the user device can implement additional flexibility in rendering data based upon local instructions, remote instructions, or a combination. TABLE 3 Rendering Interactive concept ID UI/OS Instructions Elements 243 Palm Pilot, v. 3.5 instructions 1 element type 1 243 Windows 2000 instructions 2 element type 2 . . . 266 Palm Pilot, v. 3.5 instructions 3 element type 3 266 Windows 2000 instructions 4 element type 4 . . . concept ID N . . . instructions N element type N

[0053] The UI program renders the concept data and displays it on the user device according to the rendering instructions (step 162). The UI program also determines if the concept data includes an interactive element (step 164). If so, the UI program sets the element in the display on the user device according to the corresponding data and the rendering instructions (step 166).

[0054] The UI program determines whether more concepts exist to render (step 168). It can make this determination by detecting whether it has reached the end of the data string according to the nomenclature or as indicated by a particular code. If more concepts exist, the UI program returns to step 156 to continue to parse to data string in order to obtain the next concept and render the corresponding concept data.

[0055]FIG. 6 is a flow chart of a method 170 for re-rendering interactive elements based upon a user's selection of them. Method 170 can be implemented, for example, with software or firmware modules on a server such as system server 10 and the user device, as necessary to perform the method. In method 170, the UI program detects a user's selection of an interactive element on the display for the user device (step 172). Upon detecting the selection, the UI program obtains the corresponding concept identifier (step 174). The concept data representing an interactive element is linked with the corresponding concept identifiers, as explained in the related application identified above, permitting the UI program to obtain a concept identifier for the selected concept data.

[0056] The UI program uses the concept identifier and interactive element to look up interaction rules and rendering instructions for the element (step 178) and retrieve the interaction rules and rendering instructions (step 178). Table 4 provides an example of a data structure for indexing interaction rules according to types of interactive elements. Concept identifiers can also be associated with interactive elements, as represented by concept data, and used to index interaction rules. The interaction instructions can be stored at the system server and downloaded; alternatively, they can be stored on the user device to allow the UI program to perform the processing locally. TABLE 4 Interactive Element Interaction Rules interactive element type 1 rules 1 interactive element type 2 rules 2 . . . interactive element type N rules N

[0057] The UI program re-renders the interactive element on the user device according to the interaction rules and the rendering instructions (step 180). The rendering instructions and interaction rules provide the information for how to present and change the appearance of the corresponding interactive element based upon the user's selection of it. Examples are provided below.

[0058]FIG. 7 is a diagram 190 illustrating rendering of a data elements and interactive elements on a display for a user device. Diagram 190 illustrates that data for rendering can include one or more data elements 192, 194, and 196. These data elements represent static data that does not usually change upon re-rendering and is not necessarily intended for selection by a user; rather, these elements convey information to the user. These elements can take on a wide variety types of information based upon the rendering instructions and can include, for example, text, graphics, alphanumeric data, symbols, icons, or audiovisual information. The formatting based upon the rendering instructions can include, for example, the following for the data: various fonts, shading, colors, icons, symbols, lines, graphics, positioning, or anything affecting the visual appearance of the data.

[0059] The displayed information can also include one or more interactive elements 198, 200, and 202. The interactive elements can also provide information to the user and are intended for selection by the user to perform a command such as changing the displayed and entered data corresponding to the interactive element, changing the appearance of the data, or retrieving additional information.

[0060]FIG. 8 is a diagram of an exemplary display 210 on a user device illustrating rendering of data including interactive elements according to diagram 190 and the methods described above. Display 210 includes as an example providing airline flight information, and it includes both data elements and interactive elements. A data element 214 is an “airplane” icon and illustrates how the data elements can include icons or symbols relating to the displayed information in order to, for example, provide a visually-appealing display. Data element 216 provides the flight information, in this example including a flight number, airline company, and seat classification.

[0061] Data elements 218 and 220 indicate departure and arrival cities. These data elements are each shown enclosed within a box to represent an interactive element in this example. If a user selects the departure or arrival city, for example, the displayed box may be shown in a different color than the city name to indicate its selection, and additional cities can be displayed and selected in the box. Upon the user's selection of a new city, the UI program re-renders the data to show the new city in the box. The interaction rules determine how the element changes upon selection of it, in this example changing a color of the box. Interactive elements 218 and 220 can be selected by a user tapping on a touch-screen at the location of those displayed elements, for example, or through other types of user-entered commands.

[0062] Data elements 222 and 226 indicate departure and arrival times for the flight, and a displayed line 224 underneath the departure time indicates that additional departure times are available. Upon a user's selection of the departure time 222, additional times can be displayed for selection by the user. A data element 212 represents a box for selection by the user to reserve the flight in this example. Therefore, if a user selects box 212, the UI program, according to the interaction rules, inserts a “check” mark in the box. Likewise, if box 212 already contains a “check” mark, a user can select it again to cancel the flight reservation, and according to the interaction rules the UI program removes the displayed “check” mark from the box.

[0063]FIG. 9 is a diagram of another exemplary display 230 on a user device illustrating rendering of data and including interactive elements. Display 230 includes a section 232 displaying in this example various travel-related options. A section 234 can display rental car reservations, a section 236 can display a limousine reservation, a section 238 can display airline flight reservations, and a section 240 i can display hotel reservations. A displayed “triangle” symbol 242 indicates a current one of the sections 234, 236, 238, and 240 for selection.

[0064] Selection of a displayed “up” arrow 250 causes triangle 242 to move upward; for example, from section 238 to section 236. Selection of a displayed “down” arrow 252 causes triangle 242 to move downward; for example, from section 238 to section 240. A section 246 permits the user to select one of the sections 234, 236, 238, and 240. For example, by selecting section 246, the user selects current section 238 and can then enter or select a flight reservation. By selecting section 244, the user deselects current section 238 and can cancel a flight reservation. The selection of sections 234, 236, 238, and 240, and movement of triangle 242, are re-rendered based upon the interaction rules. They can be selected through selection of the sections of a touch-screen presenting them, or other types of user-entered commands.

[0065] While the present invention has been described in connection with an exemplary embodiment, it will be understood that many modifications will be readily apparent to those skilled in the art, and this application is intended to cover any adaptations or variations thereof. For example, various types of user devices, hardware components for the devices and servers, and types of network transmissions may be used without departing from the scope of the invention. This invention should be limited only by the claims and equivalents thereof. 

What is claimed is:
 1. A method for rendering data on a user device based upon concepts, comprising: receiving incoming data at a user device, the data including concept identifiers for use in identifying concepts relating to the data; retrieving rendering instructions based upon the concept identifiers; and rendering the data on the user device based upon the rendering instructions.
 2. The method of claim 1, further including: identifying interactive elements within the data; and setting the interactive elements according to the data and the rendering instructions.
 3. The method of claim 2, further including: detecting selection of one of the interactive elements; retrieving interaction rules based upon the interactive element; and re-rendering the data based upon the interaction rules.
 4. The method of claim 3 wherein the re-rendering step includes retrieving additional data from a remote server based upon the selection of the interactive element.
 5. The method of claim 1 wherein the receiving step includes receiving as the data a string of data and corresponding tags representing the concept identifiers.
 6. The method of claim 5 wherein the rendering step including parsing the string of data for presentation according to the rendering instructions.
 7. The method of claim 1 wherein the retrieving step includes locally retrieving the rendering instructions at the user device.
 8. The method of claim 1 wherein the rendering step includes formatting an appearance of visual elements for the data.
 9. The method of claim 8 wherein the formatting step includes selecting, based upon the rendering instructions, at least one of the following: a particular color for presenting the data, a particular icon for presenting the data, positioning of the data, or a particular symbol for presenting the data.
 10. The method of claim 1 wherein the retrieving step includes selecting the rendering instructions based upon a particular type of the user device.
 11. An apparatus for rendering data on a user device based upon concepts, comprising: a receive module for receiving incoming data at a user device, the data including concept identifiers for use in identifying concepts relating to the data; a retrieve module for retrieving rendering instructions based upon the concept identifiers; and a render module for rendering the data on the user device based upon the rendering instructions.
 12. The apparatus of claim 11, further including: a module for identifying interactive elements within the data; and a module for setting the interactive elements according to the data and the rendering instructions.
 13. The apparatus of claim 12, further including: a module for detecting selection of one of the interactive elements; a module for retrieving interaction rules based upon the interactive element; and a module for re-rendering the data based upon the interaction rules.
 14. The apparatus of claim 13 wherein the module for re-rendering includes a module for retrieving additional data from a remote server based upon the selection of the interactive element.
 15. The apparatus of claim 11 wherein the receive module includes a module for receiving as the data a string of data and corresponding tags representing the concept identifiers.
 16. The apparatus of claim 15 wherein the render module including a module for parsing the string of data for presentation according to the rendering instructions.
 17. The apparatus of claim 11 wherein the retrieve module includes a module for locally retrieving the rendering instructions at the user device.
 18. The apparatus of claim 11 wherein the render module includes a module for formatting an appearance of visual elements for the data.
 19. The apparatus of claim 18 wherein the module for formatting includes a module for selecting, based upon the rendering instructions, at least one of the following: a particular color for presenting the data, a particular icon for presenting the data, positioning of the data, or a particular symbol for presenting the data.
 20. The apparatus of claim 11 wherein the retrieve module includes a module for selecting the rendering instructions based upon a particular type of the user device. 